aboutsummaryrefslogtreecommitdiffstats
path: root/doc/ikev2/[RFC2412] - The OAKLEY Key Determination Protocol.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/ikev2/[RFC2412] - The OAKLEY Key Determination Protocol.txt')
-rw-r--r--doc/ikev2/[RFC2412] - The OAKLEY Key Determination Protocol.txt3083
1 files changed, 0 insertions, 3083 deletions
diff --git a/doc/ikev2/[RFC2412] - The OAKLEY Key Determination Protocol.txt b/doc/ikev2/[RFC2412] - The OAKLEY Key Determination Protocol.txt
deleted file mode 100644
index 9169d78be..000000000
--- a/doc/ikev2/[RFC2412] - The OAKLEY Key Determination Protocol.txt
+++ /dev/null
@@ -1,3083 +0,0 @@
-
-
-
-
-
-
-Network Working Group H. Orman
-Request for Comments: 2412 Department of Computer Science
-Category: Informational University of Arizona
- November 1998
-
-
- The OAKLEY Key Determination Protocol
-
-Status of this Memo
-
- This memo provides information for the Internet community. It does
- not specify an Internet standard of any kind. Distribution of this
- memo is unlimited.
-
-Copyright Notice
-
- Copyright (C) The Internet Society (1998). All Rights Reserved.
-
-Abstract
-
- This document describes a protocol, named OAKLEY, by which two
- authenticated parties can agree on secure and secret keying material.
- The basic mechanism is the Diffie-Hellman key exchange algorithm.
-
- The OAKLEY protocol supports Perfect Forward Secrecy, compatibility
- with the ISAKMP protocol for managing security associations, user-
- defined abstract group structures for use with the Diffie-Hellman
- algorithm, key updates, and incorporation of keys distributed via
- out-of-band mechanisms.
-
-1. INTRODUCTION
-
- Key establishment is the heart of data protection that relies on
- cryptography, and it is an essential component of the packet
- protection mechanisms described in [RFC2401], for example. A
- scalable and secure key distribution mechanism for the Internet is a
- necessity. The goal of this protocol is to provide that mechanism,
- coupled with a great deal of cryptographic strength.
-
- The Diffie-Hellman key exchange algorithm provides such a mechanism.
- It allows two parties to agree on a shared value without requiring
- encryption. The shared value is immediately available for use in
- encrypting subsequent conversation, e.g. data transmission and/or
- authentication. The STS protocol [STS] provides a demonstration of
- how to embed the algorithm in a secure protocol, one that ensures
- that in addition to securely sharing a secret, the two parties can be
- sure of each other's identities, even when an active attacker exists.
-
-
-
-
-Orman Informational [Page 1]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- Because OAKLEY is a generic key exchange protocol, and because the
- keys that it generates might be used for encrypting data with a long
- privacy lifetime, 20 years or more, it is important that the
- algorithms underlying the protocol be able to ensure the security of
- the keys for that period of time, based on the best prediction
- capabilities available for seeing into the mathematical future. The
- protocol therefore has two options for adding to the difficulties
- faced by an attacker who has a large amount of recorded key exchange
- traffic at his disposal (a passive attacker). These options are
- useful for deriving keys which will be used for encryption.
-
- The OAKLEY protocol is related to STS, sharing the similarity of
- authenticating the Diffie-Hellman exponentials and using them for
- determining a shared key, and also of achieving Perfect Forward
- Secrecy for the shared key, but it differs from the STS protocol in
- several ways.
-
- The first is the addition of a weak address validation mechanism
- ("cookies", described by Phil Karn in the Photuris key exchange
- protocol work in progress) to help avoid denial of service
- attacks.
-
- The second extension is to allow the two parties to select
- mutually agreeable supporting algorithms for the protocol: the
- encryption method, the key derivation method, and the
- authentication method.
-
- Thirdly, the authentication does not depend on encryption using
- the Diffie-Hellman exponentials; instead, the authentication
- validates the binding of the exponentials to the identities of the
- parties.
-
- The protocol does not require the two parties compute the shared
- exponentials prior to authentication.
-
- This protocol adds additional security to the derivation of keys
- meant for use with encryption (as opposed to authentication) by
- including a dependence on an additional algorithm. The derivation
- of keys for encryption is made to depend not only on the Diffie-
- Hellman algorithm, but also on the cryptographic method used to
- securely authenticate the communicating parties to each other.
-
- Finally, this protocol explicitly defines how the two parties can
- select the mathematical structures (group representation and
- operation) for performing the Diffie-Hellman algorithm; they can
- use standard groups or define their own. User-defined groups
- provide an additional degree of long-term security.
-
-
-
-
-Orman Informational [Page 2]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- OAKLEY has several options for distributing keys. In addition to the
- classic Diffie-Hellman exchange, this protocol can be used to derive
- a new key from an existing key and to distribute an externally
- derived key by encrypting it.
-
- The protocol allows two parties to use all or some of the anti-
- clogging and perfect forward secrecy features. It also permits the
- use of authentication based on symmetric encryption or non-encryption
- algorithms. This flexibility is included in order to allow the
- parties to use the features that are best suited to their security
- and performance requirements.
-
- This document draws extensively in spirit and approach from the
- Photuris work in progress by Karn and Simpson (and from discussions
- with the authors), specifics of the ISAKMP document by Schertler et
- al. the ISAKMP protocol document, and it was also influenced by
- papers by Paul van Oorschot and Hugo Krawcyzk.
-
-2. The Protocol Outline
-
-2.1 General Remarks
-
- The OAKLEY protocol is used to establish a shared key with an
- assigned identifier and associated authenticated identities for the
- two parties. The name of the key can be used later to derive
- security associations for the RFC 2402 and RFC 2406 protocols (AH and
- ESP) or to achieve other network security goals.
-
- Each key is associated with algorithms that are used for
- authentication, privacy, and one-way functions. These are ancillary
- algorithms for OAKLEY; their appearance in subsequent security
- association definitions derived with other protocols is neither
- required nor prohibited.
-
- The specification of the details of how to apply an algorithm to data
- is called a transform. This document does not supply the transform
- definitions; they will be in separate RFC's.
-
- The anti-clogging tokens, or "cookies", provide a weak form of source
- address identification for both parties; the cookie exchange can be
- completed before they perform the computationally expensive part of
- the protocol (large integer exponentiations).
-
- It is important to note that OAKLEY uses the cookies for two
- purposes: anti-clogging and key naming. The two parties to the
- protocol each contribute one cookie at the initiation of key
- establishment; the pair of cookies becomes the key identifier
- (KEYID), a reusable name for the keying material. Because of this
-
-
-
-Orman Informational [Page 3]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- dual role, we will use the notation for the concatenation of the
- cookies ("COOKIE-I, COOKIE-R") interchangeably with the symbol
- "KEYID".
-
- OAKLEY is designed to be a compatible component of the ISAKMP
- protocol [ISAKMP], which runs over the UDP protocol using a well-
- known port (see the RFC on port assignments, STD02-RFC-1700). The
- only technical requirement for the protocol environment is that the
- underlying protocol stack must be able to supply the Internet address
- of the remote party for each message. Thus, OAKLEY could, in theory,
- be used directly over the IP protocol or over UDP, if suitable
- protocol or port number assignments were available.
-
- The machine running OAKLEY must provide a good random number
- generator, as described in [RANDOM], as the source of random numbers
- required in this protocol description. Any mention of a "nonce"
- implies that the nonce value is generated by such a generator. The
- same is true for "pseudorandom" values.
-
-2.2 Notation
-
- The section describes the notation used in this document for message
- sequences and content.
-
-2.2.1 Message descriptions
-
- The protocol exchanges below are written in an abbreviated notation
- that is intended to convey the essential elements of the exchange in
- a clear manner. A brief guide to the notation follows. The detailed
- formats and assigned values are given in the appendices.
-
- In order to represent message exchanges succinctly, this document
- uses an abbreviated notation that describes each message in terms of
- its source and destination and relevant fields.
-
- Arrows ("->") indicate whether the message is sent from the initiator
- to the responder, or vice versa ("<-").
-
- The fields in the message are named and comma separated. The
- protocol uses the convention that the first several fields constitute
- a fixed header format for all messages.
-
- For example, consider a HYPOTHETICAL exchange of messages involving a
- fixed format message, the four fixed fields being two "cookies", the
- third field being a message type name, the fourth field being a
- multi-precision integer representing a power of a number:
-
-
-
-
-
-Orman Informational [Page 4]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- Initiator Responder
- -> Cookie-I, 0, OK_KEYX, g^x ->
- <- Cookie-R, Cookie-I, OK_KEYX, g^y <-
-
- The notation describes a two message sequence. The initiator begins
- by sending a message with 4 fields to the responder; the first field
- has the unspecified value "Cookie-I", second field has the numeric
- value 0, the third field indicates the message type is OK_KEYX, the
- fourth value is an abstract group element g to the x'th power.
-
- The second line indicates that the responder replies with value
- "Cookie-R" in the first field, a copy of the "Cookie-I" value in the
- second field, message type OK_KEYX, and the number g raised to the
- y'th power.
-
- The value OK_KEYX is in capitals to indicate that it is a unique
- constant (constants are defined in the appendices).
-
- Variable precision integers with length zero are null values for the
- protocol.
-
- Sometimes the protocol will indicate that an entire payload (usually
- the Key Exchange Payload) has null values. The payload is still
- present in the message, for the purpose of simplifying parsing.
-
-2.2.2 Guide to symbols
-
- Cookie-I and Cookie-R (or CKY-I and CKY-R) are 64-bit pseudo-random
- numbers. The generation method must ensure with high probability
- that the numbers used for each IP remote address are unique over some
- time period, such as one hour.
-
- KEYID is the concatenation of the initiator and responder cookies and
- the domain of interpretation; it is the name of keying material.
-
- sKEYID is used to denote the keying material named by the KEYID. It
- is never transmitted, but it is used in various calculations
- performed by the two parties.
-
- OK_KEYX and OK_NEWGRP are distinct message types.
-
- IDP is a bit indicating whether or not material after the encryption
- boundary (see appendix B), is encrypted. NIDP means not encrypted.
-
- g^x and g^y are encodings of group elements, where g is a special
- group element indicated in the group description (see Appendix A) and
- g^x indicates that element raised to the x'th power. The type of the
- encoding is either a variable precision integer or a pair of such
-
-
-
-Orman Informational [Page 5]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- integers, as indicated in the group operation in the group
- description. Note that we will write g^xy as a short-hand for
- g^(xy). See Appendix F for references that describe implementing
- large integer computations and the relationship between various group
- definitions and basic arithmetic operations.
-
- EHAO is a list of encryption/hash/authentication choices. Each item
- is a pair of values: a class name and an algorithm name.
-
- EHAS is a set of three items selected from the EHAO list, one from
- each of the classes for encryption, hash, authentication.
-
- GRP is a name (32-bit value) for the group and its relevant
- parameters: the size of the integers, the arithmetic operation, and
- the generator element. There are a few pre-defined GRP's (for 768
- bit modular exponentiation groups, 1024 bit modexp, 2048 bit modexp,
- 155-bit and 210-bit elliptic curves, see Appendix E), but
- participants can share other group descriptions in a later protocol
- stage (see the section NEW GROUP). It is important to separate
- notion of the GRP from the group descriptor (Appendix A); the former
- is a name for the latter.
-
- The symbol vertical bar "|" is used to denote concatenation of bit
- strings. Fields are concatenated using their encoded form as they
- appear in their payload.
-
- Ni and Nr are nonces selected by the initiator and responder,
- respectively.
-
- ID(I) and ID(R) are the identities to be used in authenticating the
- initiator and responder respectively.
-
- E{x}Ki indicates the encryption of x using the public key of the
- initiator. Encryption is done using the algorithm associated with
- the authentication method; usually this will be RSA.
-
- S{x}Ki indicates the signature over x using the private key (signing
- key) of the initiator. Signing is done using the algorithm
- associated with the authentication method; usually this will be RSA
- or DSS.
-
- prf(a, b) denotes the result of applying pseudo-random function "a"
- to data "b". One may think of "a" as a key or as a value that
- characterizes the function prf; in the latter case it is the index
- into a family of functions. Each function in the family provides a
- "hash" or one-way mixing of the input.
-
- prf(0, b) denotes the application of a one-way function to data "b".
-
-
-
-Orman Informational [Page 6]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- The similarity with the previous notation is deliberate and indicates
- that a single algorithm, e.g. MD5, might will used for both purposes.
- In the first case a "keyed" MD5 transform would be used with key "a";
- in the second case the transform would have the fixed key value zero,
- resulting in a one-way function.
-
- The term "transform" is used to refer to functions defined in
- auxiliary RFC's. The transform RFC's will be drawn from those
- defined for IPSEC AH and ESP (see RFC 2401 for the overall
- architecture encompassing these protocols).
-
-2.3 The Key Exchange Message Overview
-
- The goal of key exchange processing is the secure establishment of
- common keying information state in the two parties. This state
- information is a key name, secret keying material, the identification
- of the two parties, and three algorithms for use during
- authentication: encryption (for privacy of the identities of the two
- parties), hashing (a pseudorandom function for protecting the
- integrity of the messages and for authenticating message fields), and
- authentication (the algorithm on which the mutual authentication of
- the two parties is based). The encodings and meanings for these
- choices are presented in Appendix B.
-
- The main mode exchange has five optional features: stateless cookie
- exchange, perfect forward secrecy for the keying material, secrecy
- for the identities, perfect forward secrecy for identity secrecy, use
- of signatures (for non-repudiation). The two parties can use any
- combination of these features.
-
- The general outline of processing is that the Initiator of the
- exchange begins by specifying as much information as he wishes in his
- first message. The Responder replies, supplying as much information
- as he wishes. The two sides exchange messages, supplying more
- information each time, until their requirements are satisfied.
-
- The choice of how much information to include in each message depends
- on which options are desirable. For example, if stateless cookies
- are not a requirement, and identity secrecy and perfect forward
- secrecy for the keying material are not requirements, and if non-
- repudiatable signatures are acceptable, then the exchange can be
- completed in three messages.
-
- Additional features may increase the number of roundtrips needed for
- the keying material determination.
-
- ISAKMP provides fields for specifying the security association
- parameters for use with the AH and ESP protocols. These security
-
-
-
-Orman Informational [Page 7]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- association payload types are specified in the ISAKMP memo; the
- payload types can be protected with OAKLEY keying material and
- algorithms, but this document does not discuss their use.
-
-2.3.1 The Essential Key Exchange Message Fields
-
- There are 12 fields in an OAKLEY key exchange message. Not all the
- fields are relevant in every message; if a field is not relevant it
- can have a null value or not be present (no payload).
-
- CKY-I originator cookie.
- CKY-R responder cookie.
- MSGTYPE for key exchange, will be ISA_KE&AUTH_REQ or
- ISA_KE&AUTH_REP; for new group definitions,
- will be ISA_NEW_GROUP_REQ or ISA_NEW_GROUP_REP
- GRP the name of the Diffie-Hellman group used for
- the exchange
- g^x (or g^y) variable length integer representing a power of
- group generator
- EHAO or EHAS encryption, hash, authentication functions,
- offered and selectedj, respectively
- IDP an indicator as to whether or not encryption with
- g^xy follows (perfect forward secrecy for ID's)
- ID(I) the identity for the Initiator
- ID(R) the identity for the Responder
- Ni nonce supplied by the Initiator
- Nr nonce supplied by the Responder
-
- The construction of the cookies is implementation dependent. Phil
- Karn has recommended making them the result of a one-way function
- applied to a secret value (changed periodically), the local and
- remote IP address, and the local and remote UDP port. In this way,
- the cookies remain stateless and expire periodically. Note that with
- OAKLEY, this would cause the KEYID's derived from the secret value to
- also expire, necessitating the removal of any state information
- associated with it.
-
- In order to support pre-distributed keys, we recommend that
- implementations reserve some portion of their cookie space to
- permanent keys. The encoding of these depends only on the local
- implementation.
-
- The encryption functions used with OAKLEY must be cryptographic
- transforms which guarantee privacy and integrity for the message
- data. Merely using DES in CBC mode is not permissible. The
- MANDATORY and OPTIONAL transforms will include any that satisfy this
- criteria and are defined for use with RFC 2406 (ESP).
-
-
-
-
-Orman Informational [Page 8]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- The one-way (hash) functions used with OAKLEY must be cryptographic
- transforms which can be used as either keyed hash (pseudo-random) or
- non-keyed transforms. The MANDATORY and OPTIONAL transforms will
- include any that are defined for use with RFC 2406 (AH).
-
- Where nonces are indicated, they will be variable precision integers
- with an entropy value that matches the "strength" attribute of the
- GRP used with the exchange. If no GRP is indicated, the nonces must
- be at least 90 bits long. The pseudo-random generator for the nonce
- material should start with initial data that has at least 90 bits of
- entropy; see RFC 1750.
-
-2.3.1.1 Exponent Advice
-
- Ideally, the exponents will have at least 180 bits of entropy for
- every key exchange. This ensures complete independence of keying
- material between two exchanges (note that this applies if only one of
- the parties chooses a random exponent). In practice, implementors
- may wish to base several key exchanges on a single base value with
- 180 bits of entropy and use one-way hash functions to guarantee that
- exposure of one key will not compromise others. In this case, a good
- recommendation is to keep the base values for nonces and cookies
- separate from the base value for exponents, and to replace the base
- value with a full 180 bits of entropy as frequently as possible.
-
- The values 0 and p-1 should not be used as exponent values;
- implementors should be sure to check for these values, and they
- should also refuse to accept the values 1 and p-1 from remote parties
- (where p is the prime used to define a modular exponentiation group).
-
-2.3.2 Mapping to ISAKMP Message Structures
-
- All the OAKLEY message fields correspond to ISAKMP message payloads
- or payload components. The relevant payload fields are the SA
- payload, the AUTH payload, the Certificate Payload, the Key Exchange
- Payload. The ISAKMP protocol framwork is a work in progress at this
- time, and the exact mapping of Oakley message fields to ISAKMP
- payloads is also in progress (to be known as the Resolution
- document).
-
- Some of the ISAKMP header and payload fields will have constant
- values when used with OAKLEY. The exact values to be used will be
- published in a Domain of Interpretation document accompanying the
- Resolution document.
-
- In the following we indicate where each OAKLEY field appears in the
- ISAKMP message structure. These are recommended only; the Resolution
- document will be the final authority on this mapping.
-
-
-
-Orman Informational [Page 9]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- CKY-I ISAKMP header
- CKY-R ISAKMP header
- MSGTYPE Message Type in ISAKMP header
- GRP SA payload, Proposal section
- g^x (or g^y) Key Exchange Payload, encoded as a variable
- precision integer
- EHAO and EHAS SA payload, Proposal section
- IDP A bit in the RESERVED field in the AUTH header
- ID(I) AUTH payload, Identity field
- ID(R) AUTH payload, Identity field
- Ni AUTH payload, Nonce Field
- Nr AUTH payload, Nonce Field
- S{...}Kx AUTH payload, Data Field
- prf{K,...} AUTH payload, Data Field
-
-2.4 The Key Exchange Protocol
-
- The exact number and content of messages exchanged during an OAKLEY
- key exchange depends on which options the Initiator and Responder
- want to use. A key exchange can be completed with three or more
- messages, depending on those options.
-
- The three components of the key determination protocol are the
-
- 1. cookie exchange (optionally stateless)
- 2. Diffie-Hellman half-key exchange (optional, but essential for
- perfect forward secrecy)
- 3. authentication (options: privacy for ID's, privacy for ID's
- with PFS, non-repudiatable)
-
- The initiator can supply as little information as a bare exchange
- request, carrying no additional information. On the other hand the
- initiator can begin by supplying all of the information necessary for
- the responder to authenticate the request and complete the key
- determination quickly, if the responder chooses to accept this
- method. If not, the responder can reply with a minimal amount of
- information (at the minimum, a cookie).
-
- The method of authentication can be digital signatures, public key
- encryption, or an out-of-band symmetric key. The three different
- methods lead to slight variations in the messages, and the variations
- are illustrated by examples in this section.
-
- The Initiator is responsible for retransmitting messages if the
- protocol does not terminate in a timely fashion. The Responder must
- therefore avoid discarding reply information until it is acknowledged
- by Initiator in the course of continuing the protocol.
-
-
-
-
-Orman Informational [Page 10]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- The remainder of this section contains examples demonstrating how to
- use OAKLEY options.
-
-2.4.1 An Aggressive Example
-
- The following example indicates how two parties can complete a key
- exchange in three messages. The identities are not secret, the
- derived keying material is protected by PFS.
-
- By using digital signatures, the two parties will have a proof of
- communication that can be recorded and presented later to a third
- party.
-
- The keying material implied by the group exponentials is not needed
- for completing the exchange. If it is desirable to defer the
- computation, the implementation can save the "x" and "g^y" values and
- mark the keying material as "uncomputed". It can be computed from
- this information later.
-
- Initiator Responder
- --------- ---------
- -> CKY-I, 0, OK_KEYX, GRP, g^x, EHAO, NIDP, ->
- ID(I), ID(R), Ni, 0,
- S{ID(I) | ID(R) | Ni | 0 | GRP | g^x | 0 | EHAO}Ki
- <- CKY-R, CKY-I, OK_KEYX, GRP, g^y, EHAS, NIDP,
- ID(R), ID(I), Nr, Ni,
- S{ID(R) | ID(I) | Nr | Ni | GRP | g^y | g^x | EHAS}Kr <-
- -> CKY-I, CKY-R, OK_KEYX, GRP, g^x, EHAS, NIDP, ->
- ID(I), ID(R), Ni, Nr,
- S{ID(I) | ID(R) | Ni | Nr | GRP | g^x | g^y | EHAS}Ki
-
- NB "NIDP" means that the PFS option for hiding identities is not used.
- i.e., the identities are not encrypted using a key based on g^xy
-
- NB Fields are shown separated by commas in this document; they are
- concatenated in the actual protocol messages using their encoded
- forms as specified in the ISAKMP/Oakley Resolution document.
-
- The result of this exchange is a key with KEYID = CKY-I|CKY-R and
- value
-
- sKEYID = prf(Ni | Nr, g^xy | CKY-I | CKY-R).
-
- The processing outline for this exchange is as follows:
-
-
-
-
-
-
-
-Orman Informational [Page 11]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- Initiation
-
- The Initiator generates a unique cookie and associates it with the
- expected IP address of the responder, and its chosen state
- information: GRP (the group identifier), a pseudo-randomly
- selected exponent x, g^x, EHAO list, nonce, identities. The first
- authentication choice in the EHAO list is an algorithm that
- supports digital signatures, and this is used to sign the ID's and
- the nonce and group id. The Initiator further
-
- notes that the key is in the initial state of "unauthenticated",
- and
-
- sets a timer for possible retransmission and/or termination of the
- request.
-
- When the Responder receives the message, he may choose to ignore all
- the information and treat it as merely a request for a cookie,
- creating no state. If CKY-I is not already in use by the source
- address in the IP header, the responder generates a unique cookie,
- CKY-R. The next steps depend on the Responder's preferences. The
- minimal required response is to reply with the first cookie field set
- to zero and CKY-R in the second field. For this example we will
- assume that the responder is more aggressive (for the alternatives,
- see section 6) and accepts the following:
-
- group with identifier GRP,
- first authentication choice (which must be the digital signature
- method used to sign the Initiator message),
- lack of perfect forward secrecy for protecting the identities,
- identity ID(I) and identity ID(R)
-
- In this example the Responder decides to accept all the information
- offered by the initiator. It validates the signature over the signed
- portion of the message, and associate the pair (CKY-I, CKY-R) with
- the following state information:
-
- the source and destination network addresses of the message
-
- key state of "unauthenticated"
-
- the first algorithm from the authentication offer
-
- group GRP, a "y" exponent value in group GRP, and g^x from the
- message
-
- the nonce Ni and a pseudorandomly selected value Nr
-
-
-
-
-Orman Informational [Page 12]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- a timer for possible destruction of the state.
-
- The Responder computes g^y, forms the reply message, and then signs
- the ID and nonce information with the private key of ID(R) and sends
- it to the Initiator. In all exchanges, each party should make sure
- that he neither offers nor accepts 1 or g^(p-1) as an exponential.
-
- In this example, to expedite the protocol, the Responder implicitly
- accepts the first algorithm in the Authentication class of the EHAO
- list. This because he cannot validate the Initiator signature
- without accepting the algorithm for doing the signature. The
- Responder's EHAS list will also reflect his acceptance.
-
- The Initiator receives the reply message and
- validates that CKY-I is a valid association for the network
- address of the incoming message,
-
- adds the CKY-R value to the state for the pair (CKY-I, network
- address), and associates all state information with the pair
- (CKY-I, CKY-R),
-
- validates the signature of the responder over the state
- information (should validation fail, the message is discarded)
-
- adds g^y to its state information,
-
- saves the EHA selections in the state,
-
- optionally computes (g^y)^x (= g^xy) (this can be deferred until
- after sending the reply message),
-
- sends the reply message, signed with the public key of ID(I),
-
- marks the KEYID (CKY-I|CKY-R) as authenticated,
-
- and composes the reply message and signature.
-
- When the Responder receives the Initiator message, and if the
- signature is valid, it marks the key as being in the authenticated
- state. It should compute g^xy and associate it with the KEYID.
-
- Note that although PFS for identity protection is not used, PFS for
- the derived keying material is still present because the Diffie-
- Hellman half-keys g^x and g^y are exchanged.
-
- Even if the Responder only accepts some of the Initiator information,
- the Initiator will consider the protocol to be progressing. The
- Initiator should assume that fields that were not accepted by the
-
-
-
-Orman Informational [Page 13]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- Responder were not recorded by the Responder.
-
- If the Responder does not accept the aggressive exchange and selects
- another algorithm for the A function, then the protocol will not
- continue using the signature algorithm or the signature value from
- the first message.
-
-2.4.1.1 Fields Not Present
-
- If the Responder does not accept all the fields offered by the
- Initiator, he should include null values for those fields in his
- response. Section 6 has guidelines on how to select fields in a
- "left-to-right" manner. If a field is not accepted, then it and all
- following fields must have null values.
-
- The Responder should not record any information that it does not
- accept. If the ID's and nonces have null values, there will not be a
- signature over these null values.
-
-2.4.1.2 Signature via Pseudo-Random Functions
-
- The aggressive example is written to suggest that public key
- technology is used for the signatures. However, a pseudorandom
- function can be used, if the parties have previously agreed to such a
- scheme and have a shared key.
-
- If the first proposal in the EHAO list is an "existing key" method,
- then the KEYID named in that proposal will supply the keying material
- for the "signature" which is computed using the "H" algorithm
- associated with the KEYID.
-
- Suppose the first proposal in EHAO is
- EXISTING-KEY, 32
- and the "H" algorithm for KEYID 32 is MD5-HMAC, by prior negotiation.
- The keying material is some string of bits, call it sK32. Then in
- the first message in the aggressive exchange, where the signature
-
- S{ID(I), ID(R), Ni, 0, GRP, g^x, EHAO}Ki
-
- is indicated, the signature computation would be performed by
- MD5-HMAC_func(KEY=sK32, DATA = ID(I) | ID(R) | Ni | 0 | GRP | g^x
- | g^y | EHAO) (The exact definition of the algorithm corresponding
- to "MD5-HMAC- func" will appear in the RFC defining that transform).
-
- The result of this computation appears in the Authentication payload.
-
-
-
-
-
-
-Orman Informational [Page 14]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
-2.4.2 An Aggressive Example With Hidden Identities
-
- The following example indicates how two parties can complete a key
- exchange without using digital signatures. Public key cryptography
- hides the identities during authentication. The group exponentials
- are exchanged and authenticated, but the implied keying material
- (g^xy) is not needed during the exchange.
-
- This exchange has an important difference from the previous signature
- scheme --- in the first message, an identity for the responder is
- indicated as cleartext: ID(R'). However, the identity hidden with
- the public key cryptography is different: ID(R). This happens
- because the Initiator must somehow tell the Responder which
- public/private key pair to use for the decryption, but at the same
- time, the identity is hidden by encryption with that public key.
-
- The Initiator might elect to forgo secrecy of the Responder identity,
- but this is undesirable. Instead, if there is a well-known identity
- for the Responder node, the public key for that identity can be used
- to encrypt the actual Responder identity.
-
- Initiator Responder
- --------- ---------
- -> CKY-I, 0, OK_KEYX, GRP, g^x, EHAO, NIDP, ->
- ID(R'), E{ID(I), ID(R), E{Ni}Kr}Kr'
- <- CKY-R, CKY-I, OK_KEYX, GRP, g^y, EHAS, NIDP,
- E{ID(R), ID(I), Nr}Ki,
- prf(Kir, ID(R) | ID(I) | GRP | g^y | g^x | EHAS) <-
- -> CKY-I, CKY-R, OK_KEYX, GRP, 0, 0, NIDP,
- prf(Kir, ID(I) | ID(R) | GRP | g^x | g^y | EHAS) ->
-
- Kir = prf(0, Ni | Nr)
-
- NB "NIDP" means that the PFS option for hiding identities is not used.
-
- NB The ID(R') value is included in the Authentication payload as
- described in Appendix B.
-
- The result of this exchange is a key with KEYID = CKY-I|CKY-R and
- value sKEYID = prf(Ni | Nr, g^xy | CKY-I | CKY-R).
-
- The processing outline for this exchange is as follows:
-
- Initiation
- The Initiator generates a unique cookie and associates it with the
- expected IP address of the responder, and its chosen state
- information: GRP, g^x, EHAO list. The first authentication choice
- in the EHAO list is an algorithm that supports public key
-
-
-
-Orman Informational [Page 15]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- encryption. The Initiator also names the two identities to be
- used for the connection and enters these into the state. A well-
- known identity for the responder machine is also chosen, and the
- public key for this identity is used to encrypt the nonce Ni and
- the two connection identities. The Initiator further
-
- notes that the key is in the initial state of "unauthenticated",
- and
-
- sets a timer for possible retransmission and/or termination of the
- request.
-
- When the Responder receives the message, he may choose to ignore all
- the information and treat it as merely a request for a cookie,
- creating no state.
-
- If CKY-I is not already in use by the source address in the IP
- header, the Responder generates a unique cookie, CKY-R. As before,
- the next steps depend on the responder's preferences. The minimal
- required response is a message with the first cookie field set to
- zero and CKY-R in the second field. For this example we will assume
- that responder is more aggressive and accepts the following:
-
- group GRP, first authentication choice (which must be the public
- key encryption algorithm used to encrypt the payload), lack of
- perfect forward secrecy for protecting the identities, identity
- ID(I), identity ID(R)
-
- The Responder must decrypt the ID and nonce information, using the
- private key for the R' ID. After this, the private key for the R ID
- will be used to decrypt the nonce field.
-
- The Responder now associates the pair (CKY-I, CKY-R) with the
- following state information:
-
- the source and destination network addresses of the message
-
- key state of "unauthenticated"
-
- the first algorithm from each class in the EHAO (encryption-hash-
- authentication algorithm offers) list
-
- group GRP and a y and g^y value in group GRP
-
- the nonce Ni and a pseudorandomly selected value Nr
-
- a timer for possible destruction of the state.
-
-
-
-
-Orman Informational [Page 16]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- The Responder then encrypts the state information with the public key
- of ID(I), forms the prf value, and sends it to the Initiator.
-
- The Initiator receives the reply message and
- validates that CKY-I is a valid association for the network
- address of the incoming message,
-
- adds the CKY-R value to the state for the pair (CKY-I, network
- address), and associates all state information with the pair
- (CKY-I, CKY-R),
-
- decrypts the ID and nonce information
-
- checks the prf calculation (should this fail, the message is
- discarded)
-
- adds g^y to its state information,
-
- saves the EHA selections in the state,
-
- optionally computes (g^x)^y (= g^xy) (this may be deferred), and
-
- sends the reply message, encrypted with the public key of ID(R),
-
- and marks the KEYID (CKY-I|CKY-R) as authenticated.
-
- When the Responder receives this message, it marks the key as being
- in the authenticated state. If it has not already done so, it should
- compute g^xy and associate it with the KEYID.
-
- The secret keying material sKEYID = prf(Ni | Nr, g^xy | CKY-I |
- CKY-R)
-
- Note that although PFS for identity protection is not used, PFS for
- the derived keying material is still present because the Diffie-
- Hellman half-keys g^x and g^y are exchanged.
-
-2.4.3 An Aggressive Example With Private Identities and Without Diffie-
- Hellman
-
- Considerable computational expense can be avoided if perfect forward
- secrecy is not a requirement for the session key derivation. The two
- parties can exchange nonces and secret key parts to achieve the
- authentication and derive keying material. The long-term privacy of
- data protected with derived keying material is dependent on the
- private keys of each of the parties.
-
-
-
-
-
-Orman Informational [Page 17]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- In this exchange, the GRP has the value 0 and the field for the group
- exponential is used to hold a nonce value instead.
-
- As in the previous section, the first proposed algorithm must be a
- public key encryption system; by responding with a cookie and a non-
- zero exponential field, the Responder implicitly accepts the first
- proposal and the lack of perfect forward secrecy for the identities
- and derived keying material.
-
- Initiator Responder
- --------- ---------
- -> CKY-I, 0, OK_KEYX, 0, 0, EHAO, NIDP, ->
- ID(R'), E{ID(I), ID(R), sKi}Kr', Ni
- <- CKY-R, CKY-I, OK_KEYX, 0, 0, EHAS, NIDP,
- E{ID(R), ID(I), sKr}Ki, Nr,
- prf(Kir, ID(R) | ID(I) | Nr | Ni | EHAS) <-
- -> CKY-I, CKY-R, OK_KEYX, EHAS, NIDP,
- prf(Kir, ID(I) | ID(R) | Ni | Nr | EHAS) ->
-
- Kir = prf(0, sKi | sKr)
-
- NB The sKi and sKr values go into the nonce fields. The change in
- notation is meant to emphasize that their entropy is critical to
- setting the keying material.
-
- NB "NIDP" means that the PFS option for hiding identities is not
- used.
-
- The result of this exchange is a key with KEYID = CKY-I|CKY-R and
- value sKEYID = prf(Kir, CKY-I | CKY-R).
-
-2.4.3 A Conservative Example
-
- In this example the two parties are minimally aggressive; they use
- the cookie exchange to delay creation of state, and they use perfect
- forward secrecy to protect the identities. For this example, they
- use public key encryption for authentication; digital signatures or
- pre-shared keys can also be used, as illustrated previously. The
- conservative example here does not change the use of nonces, prf's,
- etc., but it does change how much information is transmitted in each
- message.
-
- The responder considers the ability of the initiator to repeat CKY-R
- as weak evidence that the message originates from a "live"
- correspondent on the network and the correspondent is associated with
- the initiator's network address. The initiator makes similar
- assumptions when CKY-I is repeated to the initiator.
-
-
-
-
-Orman Informational [Page 18]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- All messages must have either valid cookies or at least one zero
- cookie. If both cookies are zero, this indicates a request for a
- cookie; if only the initiator cookie is zero, it is a response to a
- cookie request.
-
- Information in messages violating the cookie rules cannot be used for
- any OAKLEY operations.
-
- Note that the Initiator and Responder must agree on one set of EHA
- algorithms; there is not one set for the Responder and one for the
- Initiator. The Initiator must include at least MD5 and DES in the
- initial offer.
-
- Fields not indicated have null values.
-
- Initiator Responder
- --------- ---------
- -> 0, 0, OK_KEYX ->
- <- 0, CKY-R, OK_KEYX <-
- -> CKY-I, CKY-R, OK_KEYX, GRP, g^x, EHAO ->
- <- CKY-R, CKY-I, OK_KEYX, GRP, g^y, EHAS <-
- -> CKY-I, CKY-R, OK_KEYX, GRP, g^x, IDP*,
- ID(I), ID(R), E{Ni}Kr, ->
- <- CKY-R, CKY-I, OK_KEYX, GRP, 0 , 0, IDP, <-
- E{Nr, Ni}Ki, ID(R), ID(I),
- prf(Kir, ID(R) | ID(I) | GRP | g^y | g^x | EHAS )
- -> CKY-I, CKY-R, OK_KEYX, GRP, 0 , 0, IDP,
- prf(Kir, ID(I) | ID(R) | GRP | g^x | g^y | EHAS ) ->
-
- Kir = prf(0, Ni | Nr)
-
- * when IDP is in effect, authentication payloads are encrypted with
- the selected encryption algorithm using the keying material prf(0,
- g^xy). (The transform defining the encryption algorithm will
- define how to select key bits from the keying material.) This
- encryption is in addition to and after any public key encryption.
- See Appendix B.
-
- Note that in the first messages, several fields are omitted from
- the description. These fields are present as null values.
-
- The first exchange allows the Responder to use stateless cookies; if
- the responder generates cookies in a manner that allows him to
- validate them without saving them, as in Photuris, then this is
- possible. Even if the Initiator includes a cookie in his initial
- request, the responder can still use stateless cookies by merely
- omitting the CKY-I from his reply and by declining to record the
- Initiator cookie until it appears in a later message.
-
-
-
-Orman Informational [Page 19]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- After the exchange is complete, both parties compute the shared key
- material sKEYID as prf(Ni | Nr, g^xy | CKY-I | CKY-R) where "prf" is
- the pseudo-random function in class "hash" selected in the EHA list.
-
- As with the cookies, each party considers the ability of the remote
- side to repeat the Ni or Nr value as a proof that Ka, the public key
- of party a, speaks for the remote party and establishes its identity.
-
- In analyzing this exchange, it is important to note that although the
- IDP option ensures that the identities are protected with an
- ephemeral key g^xy, the authentication itself does not depend on
- g^xy. It is essential that the authentication steps validate the g^x
- and g^y values, and it is thus imperative that the authentication not
- involve a circular dependency on them. A third party could intervene
- with a "man-in-middle" scheme to convince the initiator and responder
- to use different g^xy values; although such an attack might result in
- revealing the identities to the eavesdropper, the authentication
- would fail.
-
-2.4.4 Extra Strength for Protection of Encryption Keys
-
- The nonces Ni and Nr are used to provide an extra dimension of
- secrecy in deriving session keys. This makes the secrecy of the key
- depend on two different problems: the discrete logarithm problem in
- the group G, and the problem of breaking the nonce encryption scheme.
- If RSA encryption is used, then this second problem is roughly
- equivalent to factoring the RSA public keys of both the initiator and
- responder.
-
- For authentication, the key type, the validation method, and the
- certification requirement must be indicated.
-
-2.5 Identity and Authentication
-
-2.5.1 Identity
-
- In OAKLEY exchanges the Initiator offers Initiator and Responder ID's
- -- the former is the claimed identity for the Initiator, and the
- latter is the requested ID for the Responder.
-
- If neither ID is specified, the ID's are taken from the IP header
- source and destination addresses.
-
- If the Initiator doesn't supply a responder ID, the Responder can
- reply by naming any identity that the local policy allows. The
- Initiator can refuse acceptance by terminating the exchange.
-
-
-
-
-
-Orman Informational [Page 20]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- The Responder can also reply with a different ID than the Initiator
- suggested; the Initiator can accept this implicitly by continuing the
- exchange or refuse it by terminating (not replying).
-
-2.5.2 Authentication
-
- The authentication of principals to one another is at the heart of
- any key exchange scheme. The Internet community must decide on a
- scalable standard for solving this problem, and OAKLEY must make use
- of that standard. At the time of this writing, there is no such
- standard, though several are emerging. This document attempts to
- describe how a handful of standards could be incorporated into
- OAKLEY, without attempting to pick and choose among them.
-
- The following methods can appear in OAKLEY offers:
-
- a. Pre-shared Keys
- When two parties have arranged for a trusted method of
- distributing secret keys for their mutual authentication, they can
- be used for authentication. This has obvious scaling problems for
- large systems, but it is an acceptable interim solution for some
- situations. Support for pre-shared keys is REQUIRED.
-
- The encryption, hash, and authentication algorithm for use with a
- pre-shared key must be part of the state information distributed
- with the key itself.
-
- The pre-shared keys have a KEYID and keying material sKEYID; the
- KEYID is used in a pre-shared key authentication option offer.
- There can be more than one pre-shared key offer in a list.
-
- Because the KEYID persists over different invocations of OAKLEY
- (after a crash, etc.), it must occupy a reserved part of the KEYID
- space for the two parties. A few bits can be set aside in each
- party's "cookie space" to accommodate this.
-
- There is no certification authority for pre-shared keys. When a
- pre-shared key is used to generate an authentication payload, the
- certification authority is "None", the Authentication Type is
- "Preshared", and the payload contains
-
- the KEYID, encoded as two 64-bit quantities, and the result of
- applying the pseudorandom hash function to the message body
- with the sKEYID forming the key for the function
-
-
-
-
-
-
-
-Orman Informational [Page 21]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- b. DNS public keys
- Security extensions to the DNS protocol [DNSSEC] provide a
- convenient way to access public key information, especially for
- public keys associated with hosts. RSA keys are a requirement for
- secure DNS implementations; extensions to allow optional DSS keys
- are a near-term possibility.
-
- DNS KEY records have associated SIG records that are signed by a
- zone authority, and a hierarchy of signatures back to the root
- server establishes a foundation for trust. The SIG records
- indicate the algorithm used for forming the signature.
-
- OAKLEY implementations must support the use of DNS KEY and SIG
- records for authenticating with respect to IPv4 and IPv6 addresses
- and fully qualified domain names. However, implementations are
- not required to support any particular algorithm (RSA, DSS, etc.).
-
- c. RSA public keys w/o certification authority signature PGP
- [Zimmerman] uses public keys with an informal method for
- establishing trust. The format of PGP public keys and naming
- methods will be described in a separate RFC. The RSA algorithm
- can be used with PGP keys for either signing or encryption; the
- authentication option should indicate either RSA-SIG or RSA-ENC,
- respectively. Support for this is OPTIONAL.
-
- d.1 RSA public keys w/ certificates There are various formats and
- naming conventions for public keys that are signed by one or more
- certification authorities. The Public Key Interchange Protocol
- discusses X.509 encodings and validation. Support for this is
- OPTIONAL.
-
- d.2 DSS keys w/ certificates Encoding for the Digital Signature
- Standard with X.509 is described in draft-ietf-ipsec-dss-cert-
- 00.txt. Support for this is OPTIONAL; an ISAKMP Authentication
- Type will be assigned.
-
-2.5.3 Validating Authentication Keys
-
- The combination of the Authentication algorithm, the Authentication
- Authority, the Authentication Type, and a key (usually public) define
- how to validate the messages with respect to the claimed identity.
- The key information will be available either from a pre-shared key,
- or from some kind of certification authority.
-
- Generally the certification authority produces a certificate binding
- the entity name to a public key. OAKLEY implementations must be
- prepared to fetch and validate certificates before using the public
- key for OAKLEY authentication purposes.
-
-
-
-Orman Informational [Page 22]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- The ISAKMP Authentication Payload defines the Authentication
- Authority field for specifying the authority that must be apparent in
- the trust hierarchy for authentication.
-
- Once an appropriate certificate is obtained (see 2.4.3), the
- validation method will depend on the Authentication Type; if it is
- PGP then the PGP signature validation routines can be called to
- satisfy the local web-of-trust predicates; if it is RSA with X.509
- certificates, the certificate must be examined to see if the
- certification authority signature can be validated, and if the
- hierarchy is recognized by the local policy.
-
-2.5.4 Fetching Identity Objects
-
- In addition to interpreting the certificate or other data structure
- that contains an identity, users of OAKLEY must face the task of
- retrieving certificates that bind a public key to an identifier and
- also retrieving auxiliary certificates for certifying authorities or
- co-signers (as in the PGP web of trust).
-
- The ISAKMP Credentials Payload can be used to attach useful
- certificates to OAKLEY messages. The Credentials Payload is defined
- in Appendix B.
-
- Support for accessing and revoking public key certificates via the
- Secure DNS protocol [SECDNS] is MANDATORY for OAKLEY implementations.
- Other retrieval methods can be used when the AUTH class indicates a
- preference.
-
- The Public Key Interchange Protocol discusses a full protocol that
- might be used with X.509 encoded certificates.
-
-2.6 Interface to Cryptographic Transforms
-
- The keying material computed by the key exchange should have at least
- 90 bits of entropy, which means that it must be at least 90 bits in
- length. This may be more or less than is required for keying the
- encryption and/or pseudorandom function transforms.
-
- The transforms used with OAKLEY should have auxiliary algorithms
- which take a variable precision integer and turn it into keying
- material of the appropriate length. For example, a DES algorithm
- could take the low order 56 bits, a triple DES algorithm might use
- the following:
-
- K1 = low 56 bits of md5(0|sKEYID)
- K2 = low 56 bits of md5(1|sKEYID)
- K3 = low 56 bits of md5(2|sKEYID)
-
-
-
-Orman Informational [Page 23]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- The transforms will be called with the keying material encoded as a
- variable precision integer, the length of the data, and the block of
- memory with the data. Conversion of the keying material to a
- transform key is the responsibility of the transform.
-
-2.7 Retransmission, Timeouts, and Error Messages
-
- If a response from the Responder is not elicited in an appropriate
- amount of time, the message should be retransmitted by the Initiator.
- These retransmissions must be handled gracefully by both parties; the
- Responder must retain information for retransmitting until the
- Initiator moves to the next message in the protocol or completes the
- exchange.
-
- Informational error messages present a problem because they cannot be
- authenticated using only the information present in an incomplete
- exchange; for this reason, the parties may wish to establish a
- default key for OAKLEY error messages. A possible method for
- establishing such a key is described in Appendix B, under the use of
- ISA_INIT message types.
-
- In the following the message type is OAKLEY Error, the KEYID supplies
- the H algorithm and key for authenticating the message contents; this
- value is carried in the Sig/Prf payload.
-
- The Error payload contains the error code and the contents of the
- rejected message.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Orman Informational [Page 24]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! !
- ~ Initiator-Cookie ~
- / ! !
-KEYID +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- \ ! !
- ~ Responder-Cookie ~
- ! !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! Domain of Interpretation !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! Message Type ! Exch ! Vers ! Length !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! SPI (unused) !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! SPI (unused) !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! Error Payload !
- ~ ~
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! Sig/prf Payload
- ~ ~
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- The error message will contain the cookies as presented in the
- offending message, the message type OAKLEY_ERROR, and the reason for
- the error, followed by the rejected message.
-
- Error messages are informational only, and the correctness of the
- protocol does not depend on them.
-
- Error reasons:
-
- TIMEOUT exchange has taken too long, state destroyed
- AEH_ERROR an unknown algorithm appears in an offer
- GROUP_NOT_SUPPORTED GRP named is not supported
- EXPONENTIAL_UNACCEPTABLE exponential too large/small or is +-1
- SELECTION_NOT_OFFERED selection does not occur in offer
- NO_ACCEPTABLE_OFFERS no offer meets host requirements
- AUTHENTICATION_FAILURE signature or hash function fails
- RESOURCE_EXCEEDED too many exchanges or too much state info
- NO_EXCHANGE_IN_PROGRESS a reply received with no request in progress
-
-
-
-
-
-
-
-Orman Informational [Page 25]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
-2.8 Additional Security for Privacy Keys: Private Groups
-
- If the two parties have need to use a Diffie-Hellman key
- determination scheme that does not depend on the standard group
- definitions, they have the option of establishing a private group.
- The authentication need not be repeated, because this stage of the
- protocol will be protected by a pre-existing authentication key. As
- an extra security measure, the two parties will establish a private
- name for the shared keying material, so even if they use exactly the
- same group to communicate with other parties, the re-use will not be
- apparent to passive attackers.
-
- Private groups have the advantage of making a widespread passive
- attack much harder by increasing the number of groups that would have
- to be exhaustively analyzed in order to recover a large number of
- session keys. This contrasts with the case when only one or two
- groups are ever used; in that case, one would expect that years and
- years of session keys would be compromised.
-
- There are two technical challenges to face: how can a particular user
- create a unique and appropriate group, and how can a second party
- assure himself that the proposed group is reasonably secure?
-
- The security of a modular exponentiation group depends on the largest
- prime factor of the group size. In order to maximize this, one can
- choose "strong" or Sophie Germaine primes, P = 2Q + 1, where P and Q
- are prime. However, if P = kQ + 1, where k is small, then the
- strength of the group is still considerable. These groups are known
- as Schnorr subgroups, and they can be found with much less
- computational effort than Sophie-Germaine primes.
-
- Schnorr subgroups can also be validated efficiently by using probable
- prime tests.
-
- It is also fairly easy to find P, k, and Q such that the largest
- prime factor can be easily proven to be Q.
-
- We estimate that it would take about 10 minutes to find a new group
- of about 2^1024 elements, and this could be done once a day by a
- scheduled process; validating a group proposed by a remote party
- would take perhaps a minute on a 25 MHz RISC machine or a 66 MHz CISC
- machine.
-
- We note that validation is done only between previously mutually
- authenticated parties, and that a new group definition always follows
- and is protected by a key established using a well-known group.
- There are five points to keep in mind:
-
-
-
-
-Orman Informational [Page 26]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- a. The description and public identifier for the new group are
- protected by the well-known group.
-
- b. The responder can reject the attempt to establish the new
- group, either because he is too busy or because he cannot validate
- the largest prime factor as being sufficiently large.
-
- c. The new modulus and generator can be cached for long periods of
- time; they are not security critical and need not be associated
- with ongoing activity.
-
- d. Generating a new g^x value periodically will be more expensive
- if there are many groups cached; however, the importance of
- frequently generating new g^x values is reduced, so the time
- period can be lengthened correspondingly.
-
- e. All modular exponentiation groups have subgroups that are
- weaker than the main group. For Sophie Germain primes, if the
- generator is a square, then there are only two elements in the
- subgroup: 1 and g^(-1) (same as g^(p-1)) which we have already
- recommended avoiding. For Schnorr subgroups with k not equal to
- 2, the subgroup can be avoided by checking that the exponential is
- not a kth root of 1 (e^k != 1 mod p).
-
-2.8.1 Defining a New Group
-
- This section describes how to define a new group. The description of
- the group is hidden from eavesdroppers, and the identifier assigned
- to the group is unique to the two parties. Use of the new group for
- Diffie-Hellman key exchanges is described in the next section.
-
- The secrecy of the description and the identifier increases the
- difficulty of a passive attack, because if the group descriptor is
- not known to the attacker, there is no straightforward and efficient
- way to gain information about keys calculated using the group.
-
- Only the description of the new group need be encrypted in this
- exchange. The hash algorithm is implied by the OAKLEY session named
- by the group. The encryption is the encryption function of the
- OAKLEY session.
-
- The descriptor of the new group is encoded in the new group payload.
- The nonces are encoded in the Authentication Payload.
-
- Data beyond the encryption boundary is encrypted using the transform
- named by the KEYID.
-
-
-
-
-
-Orman Informational [Page 27]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- The following messages use the ISAKMP Key Exchange Identifier OAKLEY
- New Group.
-
- To define a new modular exponentiation group:
-
- Initiator Responder
- --------- ----------
- -> KEYID, ->
- INEWGRP,
- Desc(New Group), Na
- prf(sKEYID, Desc(New Group) | Na)
-
- <- KEYID,
- INEWGRPRS,
- Na, Nb
- prf(sKEYID, Na | Nb | Desc(New Group)) <-
-
- -> KEYID,
- INEWGRPACK
- prf(sKEYID, Nb | Na | Desc(New Group)) ->
-
- These messages are encrypted at the encryption boundary using the key
- indicated. The hash value is placed in the "digital signature" field
- (see Appendix B).
-
- New GRP identifier = trunc16(Na) | trunc16(Nb)
-
- (trunc16 indicates truncation to 16 bits; the initiator and
- responder must use nonces that have distinct upper bits from any
- used for current GRPID's)
-
- Desc(G) is the encoding of the descriptor for the group descriptor
- (see Appendix A for the format of a group descriptor)
-
- The two parties must store the mapping between the new group
- identifier GRP and the group descriptor Desc(New Group). They must
- also note the identities used for the KEYID and copy these to the
- state for the new group.
-
- Note that one could have the same group descriptor associated with
- several KEYID's. Pre-calculation of g^x values may be done based
- only on the group descriptor, not the private group name.
-
-2.8.2 Deriving a Key Using a Private Group
-
- Once a private group has been established, its group id can be used
- in the key exchange messages in the GRP position. No changes to the
- protocol are required.
-
-
-
-Orman Informational [Page 28]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
-2.9 Quick Mode: New Keys From Old,
-
- When an authenticated KEYID and associated keying material sKEYID
- already exist, it is easy to derive additional KEYID's and keys
- sharing similar attributes (GRP, EHA, etc.) using only hashing
- functions. The KEYID might be one that was derived in Main Mode, for
- example.
-
- On the other hand, the authenticated key may be a manually
- distributed key, one that is shared by the initiator and responder
- via some means external to OAKLEY. If the distribution method has
- formed the KEYID using appropriately unique values for the two halves
- (CKY-I and CKY-R), then this method is applicable.
-
- In the following, the Key Exchange Identifier is OAKLEY Quick Mode.
- The nonces are carried in the Authentication Payload, and the prf
- value is carried in the Authentication Payload; the Authentication
- Authority is "None" and the type is "Pre-Shared".
-
- The protocol is:
-
- Initiator Responder
- --------- ---------
- -> KEYID, INEWKRQ, Ni, prf(sKEYID, Ni) ->
- <- KEYID, INEWKRS, Nr, prf(sKEYID, 1 | Nr | Ni) <-
- -> KEYID, INEWKRP, 0, prf(sKEYID, 0 | Ni | Nr) ->
-
- The New KEYID, NKEYID, is Ni | Nr
-
- sNKEYID = prf(sKEYID, Ni | Nr )
-
- The identities and EHA values associated with NKEYID are the same as
- those associated with KEYID.
-
- Each party must validate the hash values before using the new key for
- any purpose.
-
-2.10 Defining and Using Pre-Distributed Keys
-
- If a key and an associated key identifier and state information have
- been distributed manually, then the key can be used for any OAKLEY
- purpose. The key must be associated with the usual state
- information: ID's and EHA algorithms.
-
- Local policy dictates when a manual key can be included in the OAKLEY
- database. For example, only privileged users would be permitted to
- introduce keys associated with privileged ID's, an unprivileged user
- could only introduce keys associated with her own ID.
-
-
-
-Orman Informational [Page 29]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
-2.11 Distribution of an External Key
-
- Once an OAKLEY session key and ancillary algorithms are established,
- the keying material and the "H" algorithm can be used to distribute
- an externally generated key and to assign a KEYID to it.
-
- In the following, KEYID represents an existing, authenticated OAKLEY
- session key, and sNEWKEYID represents the externally generated keying
- material.
-
- In the following, the Key Exchange Identifier is OAKLEY External
- Mode. The Key Exchange Payload contains the new key, which is
- protected
-
- Initiator Responder
- --------- ---------
- -> KEYID, IEXTKEY, Ni, prf(sKEYID, Ni) ->
- <- KEYID, IEXTKEY, Nr, prf(sKEYID, 1 | Nr | Ni) <-
- -> KEYID, IEXTKEY, Kir xor sNEWKEYID*, prf(Kir, sNEWKEYID | Ni | Nr) ->
-
- Kir = prf(sKEYID, Ni | Nr)
-
- * this field is carried in the Key Exchange Payload.
-
- Each party must validate the hash values using the "H" function in
- the KEYID state before changing any key state information.
-
- The new key is recovered by the Responder by calculating the xor of
- the field in the Authentication Payload with the Kir value.
-
- The new key identifier, naming the keying material sNEWKEYID, is
- prf(sKEYID, 1 | Ni | Nr).
-
- Note that this exchange does not require encryption. Hugo Krawcyzk
- suggested the method and noted its advantage.
-
-2.11.1 Cryptographic Strength Considerations
-
- The strength of the key used to distribute the external key must be
- at least equal to the strength of the external key. Generally, this
- means that the length of the sKEYID material must be greater than or
- equal to the length of the sNEWKEYID material.
-
- The derivation of the external key, its strength or intended use are
- not addressed by this protocol; the parties using the key must have
- some other method for determining these properties.
-
-
-
-
-
-Orman Informational [Page 30]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- As of early 1996, it appears that for 90 bits of cryptographic
- strength, one should use a modular exponentiation group modulus of
- 2000 bits. For 128 bits of strength, a 3000 bit modulus is required.
-
-3. Specifying and Deriving Security Associations
-
- When a security association is defined, only the KEYID need be given.
- The responder should be able to look up the state associated with the
- KEYID value and find the appropriate keying material, sKEYID.
-
- Deriving keys for use with IPSEC protocols such as ESP or AH is a
- subject covered in the ISAKMP/Oakley Resolution document. That
- document also describes how to negotiate acceptable parameter sets
- and identifiers for ESP and AH, and how to exactly calculate the
- keying material for each instance of the protocols. Because the
- basic keying material defined here (g^xy) may be used to derive keys
- for several instances of ESP and AH, the exact mechanics of using
- one-way functions to turn g^xy into several unique keys is essential
- to correct usage.
-
-4. ISAKMP Compatibility
-
- OAKLEY uses ISAKMP header and payload formats, as described in the
- text and in Appendix B. There are particular noteworthy extensions
- beyond the version 4 draft.
-
-4.1 Authentication with Existing Keys
-
- In the case that two parties do not have suitable public key
- mechanisms in place for authenticating each other, they can use keys
- that were distributed manually. After establishment of these keys
- and their associated state in OAKLEY, they can be used for
- authentication modes that depend on signatures, e.g. Aggressive Mode.
-
- When an existing key is to appear in an offer list, it should be
- indicated with an Authentication Algorithm of ISAKMP_EXISTING. This
- value will be assigned in the ISAKMP RFC.
-
- When the authentication method is ISAKMP_EXISTING, the authentication
- authority will have the value ISAKMP_AUTH_EXISTING; the value for
- this field must not conflict with any authentication authority
- registered with IANA and is defined in the ISAKMP RFC.
-
-
-
-
-
-
-
-
-
-Orman Informational [Page 31]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- The authentication payload will have two parts:
-
- the KEYID for the pre-existing key
-
- the identifier for the party to be authenticated by the pre-
- existing key.
-
- The pseudo-random function "H" in the state information for that
- KEYID will be the signature algorithm, and it will use the keying
- material for that key (sKEYID) when generating or checking the
- validity of message data.
-
- E.g. if the existing key has an KEYID denoted by KID and 128 bits of
- keying material denoted by sKID and "H" algorithm a transform named
- HMAC, then to generate a "signature" for a data block, the output of
- HMAC(sKID, data) will be the corresponding signature payload.
-
- The KEYID state will have the identities of the local and remote
- parties for which the KEYID was assigned; it is up to the local
- policy implementation to decide when it is appropriate to use such a
- key for authenticating other parties. For example, a key distributed
- for use between two Internet hosts A and B may be suitable for
- authenticating all identities of the form "alice@A" and "bob@B".
-
-4.2 Third Party Authentication
-
- A local security policy might restrict key negotiation to trusted
- parties. For example, two OAKLEY daemons running with equal
- sensitivity labels on two machines might wish to be the sole arbiters
- of key exchanges between users with that same sensitivity label. In
- this case, some way of authenticating the provenance of key exchange
- requests is needed. I.e., the identities of the two daemons should
- be bound to a key, and that key will be used to form a "signature"
- for the key exchange messages.
-
- The Signature Payload, in Appendix B, is for this purpose. This
- payload names a KEYID that is in existence before the start of the
- current exchange. The "H" transform for that KEYID is used to
- calculate an integrity/authentication value for all payloads
- preceding the signature.
-
- Local policy can dictate which KEYID's are appropriate for signing
- further exchanges.
-
-
-
-
-
-
-
-
-Orman Informational [Page 32]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
-4.3 New Group Mode
-
- OAKLEY uses a new KEI for the exchange that defines a new group.
-
-5. Security Implementation Notes
-
- Timing attacks that are capable of recovering the exponent value used
- in Diffie-Hellman calculations have been described by Paul Kocher
- [Kocher]. In order to nullify the attack, implementors must take
- pains to obscure the sequence of operations involved in carrying out
- modular exponentiations.
-
- A "blinding factor" can accomplish this goal. A group element, r, is
- chosen at random. When an exponent x is chosen, the value r^(-x) is
- also calculated. Then, when calculating (g^y)^x, the implementation
- will calculate this sequence:
-
- A = (rg^y)
- B = A^x = (rg^y)^x = (r^x)(g^(xy))
- C = B*r^(-x) = (r^x)(r^-(x))(g^(xy)) = g^(xy)
-
- The blinding factor is only necessary if the exponent x is used more
- than 100 times (estimate by Richard Schroeppel).
-
-6. OAKLEY Parsing and State Machine
-
- There are many pathways through OAKLEY, but they follow a left-to-
- right parsing pattern of the message fields.
-
- The initiator decides on an initial message in the following order:
-
- 1. Offer a cookie. This is not necessary but it helps with
- aggressive exchanges.
-
- 2. Pick a group. The choices are the well-known groups or any
- private groups that may have been negotiated. The very first
- exchange between two Oakley daemons with no common state must
- involve a well-known group (0, meaning no group, is a well-known
- group). Note that the group identifier, not the group descriptor,
- is used in the message.
-
- If a non-null group will be used, it must be included with the
- first message specifying EHAO. It need not be specified until
- then.
-
- 3. If PFS will be used, pick an exponent x and present g^x.
-
- 4. Offer Encryption, Hash, and Authentication lists.
-
-
-
-Orman Informational [Page 33]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- 5. Use PFS for hiding the identities
-
- If identity hiding is not used, then the initiator has this
- option:
-
- 6. Name the identities and include authentication information
-
- The information in the authentication section depends on the first
- authentication offer. In this aggressive exchange, the Initiator
- hopes that the Responder will accept all the offered information and
- the first authentication method. The authentication method
- determines the authentication payload as follows:
-
- 1. Signing method. The signature will be applied to all the
- offered information.
-
- 2. A public key encryption method. The algorithm will be used to
- encrypt a nonce in the public key of the requested Responder
- identity. There are two cases possible, depending on whether or
- not identity hiding is used:
-
- a. No identity hiding. The ID's will appear as plaintext.
- b. Identity hiding. A well-known ID, call it R', will appear
- as plaintext in the authentication payload. It will be
- followed by two ID's and a nonce; these will be encrypted using
- the public key for R'.
-
- 3. A pre-existing key method. The pre-existing key will be used
- to encrypt a nonce. If identity hiding is used, the ID's will be
- encrypted in place in the payload, using the "E" algorithm
- associated with the pre-existing key.
-
- The Responder can accept all, part or none of the initial message.
-
- The Responder accepts as many of the fields as he wishes, using the
- same decision order as the initiator. At any step he can stop,
- implicitly rejecting further fields (which will have null values in
- his response message). The minimum response is a cookie and the GRP.
-
- 1. Accept cookie. The Responder may elect to record no state
- information until the Initiator successfully replies with a cookie
- chosen by the responder. If so, the Responder replies with a
- cookie, the GRP, and no other information.
-
- 2. Accept GRP. If the group is not acceptable, the Responder will
- not reply. The Responder may send an error message indicating the
- the group is not acceptable (modulus too small, unknown
- identifier, etc.) Note that "no group" has two meanings during
-
-
-
-Orman Informational [Page 34]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- the protocol: it may mean the group is not yet specified, or it
- may mean that no group will be used (and thus PFS is not
- possible).
-
- 3. Accept the g^x value. The Responder indicates his acceptance
- of the g^x value by including his own g^y value in his reply. He
- can postpone this by ignoring g^x and putting a zero length g^y
- value in his reply. He can also reject the g^x value with an
- error message.
-
- 4. Accept one element from each of the EHA lists. The acceptance
- is indicated by a non-zero proposal.
-
- 5. If PFS for identity hiding is requested, then no further data
- will follow.
-
- 6. If the authentication payload is present, and if the first item
- in the offered authentication class is acceptable, then the
- Responder must validate/decrypt the information in the
- authentication payload and signature payload, if present. The
- Responder should choose a nonce and reply using the same
- authentication/hash algorithm as the Initiator used.
-
- The Initiator notes which information the Responder has accepted,
- validates/decrypts any signed, hashed, or encrypted fields, and if
- the data is acceptable, replies in accordance to the EHA methods
- selected by the Responder. The Initiator replies are distinguished
- from his initial message by the presence of the non-zero value for
- the Responder cookie.
-
- The output of the signature or prf function will be encoded as a
- variable precision integer as described in Appendix C. The KEYID
- will indicate KEYID that names keying material and the Hash or
- Signature function.
-
-7. The Credential Payload
-
- Useful certificates with public key information can be attached to
- OAKLEY messages using Credential Payloads as defined in the ISAKMP
- document. It should be noted that the identity protection option
- applies to the credentials as well as the identities.
-
-Security Considerations
-
- The focus of this document is security; hence security considerations
- permeate this memo.
-
-
-
-
-
-Orman Informational [Page 35]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
-Author's Address
-
- Hilarie K. Orman
- Department of Computer Science
- University of Arizona
-
- EMail: ho@darpa.mil
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Orman Informational [Page 36]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
-APPENDIX A Group Descriptors
-
- Three distinct group representations can be used with OAKLEY. Each
- group is defined by its group operation and the kind of underlying
- field used to represent group elements. The three types are modular
- exponentiation groups (named MODP herein), elliptic curve groups over
- the field GF[2^N] (named EC2N herein), and elliptic curve groups over
- GF[P] (named ECP herein) For each representation, many distinct
- realizations are possible, depending on parameter selection.
-
- With a few exceptions, all the parameters are transmitted as if they
- were non-negative multi-precision integers, using the format defined
- in this appendix (note, this is distinct from the encoding in
- Appendix C). Every multi-precision integer has a prefixed length
- field, even where this information is redundant.
-
- For the group type EC2N, the parameters are more properly thought of
- as very long bit fields, but they are represented as multi-precision
- integers, (with length fields, and right-justified). This is the
- natural encoding.
-
- MODP means the classical modular exponentiation group, where the
- operation is to calculate G^X (mod P). The group is defined by the
- numeric parameters P and G. P must be a prime. G is often 2, but
- may be a larger number. 2 <= G <= P-2.
-
- ECP is an elliptic curve group, modulo a prime number P. The
- defining equation for this kind of group is
- Y^2 = X^3 + AX + B The group operation is taking a multiple of an
- elliptic-curve point. The group is defined by 5 numeric parameters:
- The prime P, two curve parameters A and B, and a generator (X,Y).
- A,B,X,Y are all interpreted mod P, and must be (non-negative)
- integers less than P. They must satisfy the defining equation,
- modulo P.
-
- EC2N is an elliptic curve group, over the finite field F[2^N]. The
- defining equation for this kind of group is
- Y^2 + XY = X^3 + AX^2 + B (This equation differs slightly from the
- mod P case: it has an XY term, and an AX^2 term instead of an AX
- term.)
-
- We must specify the field representation, and then the elliptic
- curve. The field is specified by giving an irreducible polynomial
- (mod 2) of degree N. This polynomial is represented as an integer of
- size between 2^N and 2^(N+1), as if the defining polynomial were
- evaluated at the value U=2.
-
-
-
-
-
-Orman Informational [Page 37]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- For example, the field defined by the polynomial U^155 + U^62 + 1 is
- represented by the integer 2^155 + 2^62 + 1. The group is defined by
- 4 more parameters, A,B,X,Y. These parameters are elements of the
- field GF[2^N], and can be thought of as polynomials of degree < N,
- with (mod 2) coefficients. They fit in N-bit fields, and are
- represented as integers < 2^N, as if the polynomial were evaluated at
- U=2. For example, the field element U^2 + 1 would be represented by
- the integer 2^2+1, which is 5. The two parameters A and B define the
- curve. A is frequently 0. B must not be 0. The parameters X and Y
- select a point on the curve. The parameters A,B,X,Y must satisfy the
- defining equation, modulo the defining polynomial, and mod 2.
-
- Group descriptor formats:
-
- Type of group: A two-byte field,
- assigned values for the types "MODP", "ECP", "EC2N"
- will be defined (see ISAKMP-04).
- Size of a field element, in bits. This is either Ceiling(log2 P)
- or the degree of the irreducible polynomial: a 32-bit integer.
- The prime P or the irreducible field polynomial: a multi-precision
- integer.
- The generator: 1 or 2 values, multi-precision integers.
- EC only: The parameters of the curve: 2 values, multi-precision
- integers.
-
- The following parameters are Optional (each of these may appear
- independently):
- a value of 0 may be used as a place-holder to represent an unspecified
- parameter; any number of the parameters may be sent, from 0 to 3.
-
- The largest prime factor: the encoded value that is the LPF of the
- group size, a multi-precision integer.
-
- EC only: The order of the group: multi-precision integer.
- (The group size for MODP is always P-1.)
-
- Strength of group: 32-bit integer.
- The strength of the group is approximately the number of key-bits
- protected.
- It is determined by the log2 of the effort to attack the group.
- It may change as we learn more about cryptography.
-
- This is a generic example for a "classic" modular exponentiation group:
- Group type: "MODP"
- Size of a field element in bits: Log2 (P) rounded *up*. A 32bit
- integer.
- Defining prime P: a multi-precision integer.
- Generator G: a multi-precision integer. 2 <= G <= P-2.
-
-
-
-Orman Informational [Page 38]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- <optional>
- Largest prime factor of P-1: the multi-precision integer Q
- Strength of group: a 32-bit integer. We will specify a formula
- for calculating this number (TBD).
-
- This is a generic example for an elliptic curve group, mod P:
- Group type: "ECP"
- Size of a field element in bits: Log2 (P) rounded *up*,
- a 32 bit integer.
- Defining prime P: a multi-precision integer.
- Generator (X,Y): 2 multi-precision integers, each < P.
- Parameters of the curve A,B: 2 multi-precision integers, each < P.
- <optional>
- Largest prime factor of the group order: a multi-precision integer.
- Order of the group: a multi-precision integer.
- Strength of group: a 32-bit integer. Formula TBD.
-
- This is a specific example for an elliptic curve group:
- Group type: "EC2N"
- Degree of the irreducible polynomial: 155
- Irreducible polynomial: U^155 + U^62 + 1, represented as the
- multi-precision integer 2^155 + 2^62 + 1.
- Generator (X,Y) : represented as 2 multi-precision integers, each
- < 2^155.
- For our present curve, these are (decimal) 123 and 456. Each is
- represented as a multi-precision integer.
- Parameters of the curve A,B: represented as 2 multi-precision
- integers, each < 2^155.
- For our present curve these are 0 and (decimal) 471951, represented
- as two multi-precision integers.
-
- <optional>
- Largest prime factor of the group order:
-
- 3805993847215893016155463826195386266397436443,
-
- represented as a multi-precision integer.
- The order of the group:
-
- 45671926166590716193865565914344635196769237316
-
- represented as a multi-precision integer.
-
- Strength of group: 76, represented as a 32-bit integer.
-
- The variable precision integer encoding for group descriptor fields
- is the following. This is a slight variation on the format defined
- in Appendix C in that a fixed 16-bit value is used first, and the
-
-
-
-Orman Informational [Page 39]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- length is limited to 16 bits. However, the interpretation is
- otherwise identical.
-
- 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! Fixed value (TBD) ! Length !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- . .
- . Integer .
- . .
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-
- The format of a group descriptor is:
- 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- !1!1! Group Description ! MODP !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- !1!0! Field Size ! Length !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! MPI !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- !1!0! Prime ! Length !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! MPI !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- !1!0! Generator1 ! Length !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! MPI !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- !1!0! Generator2 ! Length !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! MPI !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- !1!0! Curve-p1 ! Length !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! MPI !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- !1!0! Curve-p2 ! Length !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! MPI !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- !1!0! Largest Prime Factor ! Length !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! MPI !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-
-
-Orman Informational [Page 40]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- !1!0! Order of Group ! Length !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! MPI !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- !0!0! Strength of Group ! Length !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! MPI !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Orman Informational [Page 41]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
-APPENDIX B Message formats
-
- The encodings of Oakley messages into ISAKMP payloads is deferred to
- the ISAKMP/Oakley Resolution document.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Orman Informational [Page 42]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
-APPENDIX C Encoding a variable precision integer.
-
- Variable precision integers will be encoded as a 32-bit length field
- followed by one or more 32-bit quantities containing the
- representation of the integer, aligned with the most significant bit
- in the first 32-bit item.
-
- 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! length !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! first value word (most significant bits) !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! !
- ~ additional value words ~
- ! !
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- An example of such an encoding is given below, for a number with 51
- bits of significance. The length field indicates that 2 32-bit
- quantities follow. The most significant non-zero bit of the number
- is in bit 13 of the first 32-bit quantity, the low order bits are in
- the second 32-bit quantity.
-
- 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- ! 1 0!
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- !0 0 0 0 0 0 0 0 0 0 0 0 0 1 x x x x x x x x x x x x x x x x x x!
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- !x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x!
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Orman Informational [Page 43]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
-APPENDIX D Cryptographic strengths
-
- The Diffie-Hellman algorithm is used to compute keys that will be
- used with symmetric algorithms. It should be no easier to break the
- Diffie-Hellman computation than it is to do an exhaustive search over
- the symmetric key space. A recent recommendation by an group of
- cryptographers [Blaze] has recommended a symmetric key size of 75
- bits for a practical level of security. For 20 year security, they
- recommend 90 bits.
-
- Based on that report, a conservative strategy for OAKLEY users would
- be to ensure that their Diffie-Hellman computations were as secure as
- at least a 90-bit key space. In order to accomplish this for modular
- exponentiation groups, the size of the largest prime factor of the
- modulus should be at least 180 bits, and the size of the modulus
- should be at least 1400 bits. For elliptic curve groups, the LPF
- should be at least 180 bits.
-
- If long-term secrecy of the encryption key is not an issue, then the
- following parameters may be used for the modular exponentiation
- group: 150 bits for the LPF, 980 bits for the modulus size.
-
- The modulus size alone does not determine the strength of the
- Diffie-Hellman calculation; the size of the exponent used in
- computing powers within the group is also important. The size of the
- exponent in bits should be at least twice the size of any symmetric
- key that will be derived from it. We recommend that ISAKMP
- implementors use at least 180 bits of exponent (twice the size of a
- 20-year symmetric key).
-
- The mathematical justification for these estimates can be found in
- texts that estimate the effort for solving the discrete log problem,
- a task that is strongly related to the efficiency of using the Number
- Field Sieve for factoring large integers. Readers are referred to
- [Stinson] and [Schneier].
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Orman Informational [Page 44]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
-APPENDIX E The Well-Known Groups
-
- The group identifiers:
-
- 0 No group (used as a placeholder and for non-DH exchanges)
- 1 A modular exponentiation group with a 768 bit modulus
- 2 A modular exponentiation group with a 1024 bit modulus
- 3 A modular exponentiation group with a 1536 bit modulus (TBD)
- 4 An elliptic curve group over GF[2^155]
- 5 An elliptic curve group over GF[2^185]
-
- values 2^31 and higher are used for private group identifiers
-
- Richard Schroeppel performed all the mathematical and computational
- work for this appendix.
-
- Classical Diffie-Hellman Modular Exponentiation Groups
-
- The primes for groups 1 and 2 were selected to have certain
- properties. The high order 64 bits are forced to 1. This helps the
- classical remainder algorithm, because the trial quotient digit can
- always be taken as the high order word of the dividend, possibly +1.
- The low order 64 bits are forced to 1. This helps the Montgomery-
- style remainder algorithms, because the multiplier digit can always
- be taken to be the low order word of the dividend. The middle bits
- are taken from the binary expansion of pi. This guarantees that they
- are effectively random, while avoiding any suspicion that the primes
- have secretly been selected to be weak.
-
- Because both primes are based on pi, there is a large section of
- overlap in the hexadecimal representations of the two primes. The
- primes are chosen to be Sophie Germain primes (i.e., (P-1)/2 is also
- prime), to have the maximum strength against the square-root attack
- on the discrete logarithm problem.
-
- The starting trial numbers were repeatedly incremented by 2^64 until
- suitable primes were located.
-
- Because these two primes are congruent to 7 (mod 8), 2 is a quadratic
- residue of each prime. All powers of 2 will also be quadratic
- residues. This prevents an opponent from learning the low order bit
- of the Diffie-Hellman exponent (AKA the subgroup confinement
- problem). Using 2 as a generator is efficient for some modular
- exponentiation algorithms. [Note that 2 is technically not a
- generator in the number theory sense, because it omits half of the
- possible residues mod P. From a cryptographic viewpoint, this is a
- virtue.]
-
-
-
-
-Orman Informational [Page 45]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
-E.1. Well-Known Group 1: A 768 bit prime
-
- The prime is 2^768 - 2^704 - 1 + 2^64 * { [2^638 pi] + 149686 }. Its
- decimal value is
- 155251809230070893513091813125848175563133404943451431320235
- 119490296623994910210725866945387659164244291000768028886422
- 915080371891804634263272761303128298374438082089019628850917
- 0691316593175367469551763119843371637221007210577919
-
- This has been rigorously verified as a prime.
-
- The representation of the group in OAKLEY is
-
- Type of group: "MODP"
- Size of field element (bits): 768
- Prime modulus: 21 (decimal)
- Length (32 bit words): 24
- Data (hex):
- FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1
- 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD
- EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245
- E485B576 625E7EC6 F44C42E9 A63A3620 FFFFFFFF FFFFFFFF
- Generator: 22 (decimal)
- Length (32 bit words): 1
- Data (hex): 2
-
- Optional Parameters:
- Group order largest prime factor: 24 (decimal)
- Length (32 bit words): 24
- Data (hex):
- 7FFFFFFF FFFFFFFF E487ED51 10B4611A 62633145 C06E0E68
- 94812704 4533E63A 0105DF53 1D89CD91 28A5043C C71A026E
- F7CA8CD9 E69D218D 98158536 F92F8A1B A7F09AB6 B6A8E122
- F242DABB 312F3F63 7A262174 D31D1B10 7FFFFFFF FFFFFFFF
- Strength of group: 26 (decimal)
- Length (32 bit words) 1
- Data (hex):
- 00000042
-
-E.2. Well-Known Group 2: A 1024 bit prime
-
- The prime is 2^1024 - 2^960 - 1 + 2^64 * { [2^894 pi] + 129093 }.
- Its decimal value is
- 179769313486231590770839156793787453197860296048756011706444
- 423684197180216158519368947833795864925541502180565485980503
- 646440548199239100050792877003355816639229553136239076508735
- 759914822574862575007425302077447712589550957937778424442426
- 617334727629299387668709205606050270810842907692932019128194
-
-
-
-Orman Informational [Page 46]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- 467627007
-
- The primality of the number has been rigorously proven.
-
- The representation of the group in OAKLEY is
- Type of group: "MODP"
- Size of field element (bits): 1024
- Prime modulus: 21 (decimal)
- Length (32 bit words): 32
- Data (hex):
- FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1
- 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD
- EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245
- E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED
- EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381
- FFFFFFFF FFFFFFFF
- Generator: 22 (decimal)
- Length (32 bit words): 1
- Data (hex): 2
-
- Optional Parameters:
- Group order largest prime factor: 24 (decimal)
- Length (32 bit words): 32
- Data (hex):
- 7FFFFFFF FFFFFFFF E487ED51 10B4611A 62633145 C06E0E68
- 94812704 4533E63A 0105DF53 1D89CD91 28A5043C C71A026E
- F7CA8CD9 E69D218D 98158536 F92F8A1B A7F09AB6 B6A8E122
- F242DABB 312F3F63 7A262174 D31BF6B5 85FFAE5B 7A035BF6
- F71C35FD AD44CFD2 D74F9208 BE258FF3 24943328 F67329C0
- FFFFFFFF FFFFFFFF
- Strength of group: 26 (decimal)
- Length (32 bit words) 1
- Data (hex):
- 0000004D
-
-E.3. Well-Known Group 3: An Elliptic Curve Group Definition
-
- The curve is based on the Galois field GF[2^155] with 2^155 field
- elements. The irreducible polynomial for the field is u^155 + u^62 +
- 1. The equation for the elliptic curve is
-
- Y^2 + X Y = X^3 + A X + B
-
- X, Y, A, B are elements of the field.
-
- For the curve specified, A = 0 and
-
- B = u^18 + u^17 + u^16 + u^13 + u^12 + u^9 + u^8 + u^7 + u^3 + u^2 +
-
-
-
-Orman Informational [Page 47]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- u + 1.
-
- B is represented in binary as the bit string 1110011001110001111; in
- decimal this is 471951, and in hex 7338F.
-
- The generator is a point (X,Y) on the curve (satisfying the curve
- equation, mod 2 and modulo the field polynomial).
-
- X = u^6 + u^5 + u^4 + u^3 + u + 1
-
- and
-
- Y = u^8 + u^7 + u^6 + u^3.
-
- The binary bit strings for X and Y are 1111011 and 111001000; in
- decimal they are 123 and 456.
-
- The group order (the number of curve points) is
- 45671926166590716193865565914344635196769237316
- which is 12 times the prime
-
- 3805993847215893016155463826195386266397436443.
- (This prime has been rigorously proven.) The generating point (X,Y)
- has order 4 times the prime; the generator is the triple of some
- curve point.
-
- OAKLEY representation of this group:
- Type of group: "EC2N"
- Size of field element (bits): 155
- Irreducible field polynomial: 21 (decimal)
- Length (32 bit words): 5
- Data (hex):
- 08000000 00000000 00000000 40000000 00000001
- Generator:
- X coordinate: 22 (decimal)
- Length (32 bit words): 1
- Data (hex): 7B
- Y coordinate: 22 (decimal)
- Length (32 bit words): 1
- Data (hex): 1C8
- Elliptic curve parameters:
- A parameter: 23 (decimal)
- Length (32 bit words): 1
- Data (hex): 0
- B parameter: 23 (decimal)
- Length (32 bit words): 1
- Data (hex): 7338F
-
-
-
-
-Orman Informational [Page 48]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- Optional Parameters:
- Group order largest prime factor: 24 (decimal)
- Length (32 bit words): 5
- Data (hex):
- 00AAAAAA AAAAAAAA AAAAB1FC F1E206F4 21A3EA1B
- Group order: 25 (decimal)
- Length (32 bit words): 5
- Data (hex):
- 08000000 00000000 000057DB 56985371 93AEF944
- Strength of group: 26 (decimal)
- Length (32 bit words) 1
- Data (hex):
- 0000004C
-
-E.4. Well-Known Group 4: A Large Elliptic Curve Group Definition
-
- This curve is based on the Galois field GF[2^185] with 2^185 field
- elements. The irreducible polynomial for the field is
-
- u^185 + u^69 + 1.
-
- The equation for the elliptic curve is
-
- Y^2 + X Y = X^3 + A X + B.
-
- X, Y, A, B are elements of the field. For the curve specified, A = 0
- and
-
- B = u^12 + u^11 + u^10 + u^9 + u^7 + u^6 + u^5 + u^3 + 1.
-
- B is represented in binary as the bit string 1111011101001; in
- decimal this is 7913, and in hex 1EE9.
-
- The generator is a point (X,Y) on the curve (satisfying the curve
- equation, mod 2 and modulo the field polynomial);
-
- X = u^4 + u^3 and Y = u^3 + u^2 + 1.
-
- The binary bit strings for X and Y are 11000 and 1101; in decimal
- they are 24 and 13. The group order (the number of curve points) is
-
- 49039857307708443467467104857652682248052385001045053116,
-
- which is 4 times the prime
-
- 12259964326927110866866776214413170562013096250261263279.
-
- (This prime has been rigorously proven.)
-
-
-
-Orman Informational [Page 49]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- The generating point (X,Y) has order 2 times the prime; the generator
- is the double of some curve point.
-
- OAKLEY representation of this group:
-
- Type of group: "EC2N"
- Size of field element (bits): 185
- Irreducible field polynomial: 21 (decimal)
- Length (32 bit words): 6
- Data (hex):
- 02000000 00000000 00000000 00000020 00000000 00000001
- Generator:
- X coordinate: 22 (decimal)
- Length (32 bit words): 1
- Data (hex): 18
- Y coordinate: 22 (decimal)
- Length (32 bit words): 1
- Data (hex): D
- Elliptic curve parameters:
- A parameter: 23 (decimal)
- Length (32 bit words): 1
- Data (hex): 0
- B parameter: 23 (decimal)
- Length (32 bit words): 1
- Data (hex): 1EE9
-
- Optional parameters:
- Group order largest prime factor: 24 (decimal)
- Length (32 bit words): 6
- Data (hex):
- 007FFFFF FFFFFFFF FFFFFFFF F6FCBE22 6DCF9210 5D7E53AF
- Group order: 25 (decimal)
- Length (32 bit words): 6
- Data (hex):
- 01FFFFFF FFFFFFFF FFFFFFFF DBF2F889 B73E4841 75F94EBC
- Strength of group: 26 (decimal)
- Length (32 bit words) 1
- Data (hex):
- 0000005B
-
-E.5. Well-Known Group 5: A 1536 bit prime
-
- The prime is 2^1536 - 2^1472 - 1 + 2^64 * { [2^1406 pi] + 741804
- }.
- Its decimal value is
- 241031242692103258855207602219756607485695054850245994265411
- 694195810883168261222889009385826134161467322714147790401219
- 650364895705058263194273070680500922306273474534107340669624
-
-
-
-Orman Informational [Page 50]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- 601458936165977404102716924945320037872943417032584377865919
- 814376319377685986952408894019557734611984354530154704374720
- 774996976375008430892633929555996888245787241299381012913029
- 459299994792636526405928464720973038494721168143446471443848
- 8520940127459844288859336526896320919633919
-
- The primality of the number has been rigorously proven.
-
- The representation of the group in OAKLEY is
- Type of group: "MODP"
- Size of field element (bits): 1536
- Prime modulus: 21 (decimal)
- Length (32 bit words): 48
- Data (hex):
- FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1
- 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD
- EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245
- E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED
- EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE45B3D
- C2007CB8 A163BF05 98DA4836 1C55D39A 69163FA8 FD24CF5F
- 83655D23 DCA3AD96 1C62F356 208552BB 9ED52907 7096966D
- 670C354E 4ABC9804 F1746C08 CA237327 FFFFFFFF FFFFFFFF
- Generator: 22 (decimal)
- Length (32 bit words): 1
- Data (hex): 2
-
- Optional Parameters:
- Group order largest prime factor: 24 (decimal)
- Length (32 bit words): 48
- Data (hex):
- 7FFFFFFF FFFFFFFF E487ED51 10B4611A 62633145 C06E0E68
- 94812704 4533E63A 0105DF53 1D89CD91 28A5043C C71A026E
- F7CA8CD9 E69D218D 98158536 F92F8A1B A7F09AB6 B6A8E122
- F242DABB 312F3F63 7A262174 D31BF6B5 85FFAE5B 7A035BF6
- F71C35FD AD44CFD2 D74F9208 BE258FF3 24943328 F6722D9E
- E1003E5C 50B1DF82 CC6D241B 0E2AE9CD 348B1FD4 7E9267AF
- C1B2AE91 EE51D6CB 0E3179AB 1042A95D CF6A9483 B84B4B36
- B3861AA7 255E4C02 78BA3604 6511B993 FFFFFFFF FFFFFFFF
- Strength of group: 26 (decimal)
- Length (32 bit words) 1
- Data (hex):
- 0000005B
-
-
-
-
-
-
-
-
-
-Orman Informational [Page 51]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
-Appendix F Implementing Group Operations
-
- The group operation must be implemented as a sequence of arithmetic
- operations; the exact operations depend on the type of group. For
- modular exponentiation groups, the operation is multi-precision
- integer multiplication and remainders by the group modulus. See
- Knuth Vol. 2 [Knuth] for a discussion of how to implement these for
- large integers. Implementation recommendations for elliptic curve
- group operations over GF[2^N] are described in [Schroeppel].
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Orman Informational [Page 52]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
-BIBLIOGRAPHY
-
- [RFC2401] Atkinson, R., "Security Architecture for the
- Internet Protocol", RFC 2401, November 1998.
-
- [RFC2406] Atkinson, R., "IP Encapsulating Security Payload (ESP)",
- RFC 2406, November 1998.
-
- [RFC2402] Atkinson, R., "IP Authentication Header", RFC 2402,
- November 1998.
-
- [Blaze] Blaze, Matt et al., MINIMAL KEY LENGTHS FOR SYMMETRIC
- CIPHERS TO PROVIDE ADEQUATE COMMERCIAL SECURITY. A
- REPORT BY AN AD HOC GROUP OF CRYPTOGRAPHERS AND COMPUTER
- SCIENTISTS... --
- http://www.bsa.org/policy/encryption/cryptographers.html
-
- [STS] W. Diffie, P.C. Van Oorschot, and M.J. Wiener,
- "Authentication and Authenticated Key Exchanges," in
- Designs, Codes and Cryptography, Kluwer Academic
- Publishers, 1992, pp. 107
-
- [SECDNS] Eastlake, D. and C. Kaufman, "Domain Name System
- Security Extensions", RFC 2065, January 1997.
-
- [Random] Eastlake, D., Crocker, S. and J. Schiller, "Randomness
- Recommendations for Security", RFC 1750, December 1994.
-
- [Kocher] Kocher, Paul, Timing Attack,
- http://www.cryptography.com/timingattack.old/timingattack.html
-
- [Knuth] Knuth, Donald E., The Art of Computer Programming, Vol.
- 2, Seminumerical Algorithms, Addison Wesley, 1969.
-
- [Krawcyzk] Krawcyzk, Hugo, SKEME: A Versatile Secure Key Exchange
- Mechanism for Internet, ISOC Secure Networks and
- Distributed Systems Symposium, San Diego, 1996
-
- [Schneier] Schneier, Bruce, Applied cryptography: protocols,
- algorithms, and source code in C, Second edition, John
- Wiley & Sons, Inc. 1995, ISBN 0-471-12845-7, hardcover.
- ISBN 0-471-11709-9, softcover.
-
- [Schroeppel] Schroeppel, Richard, et al.; Fast Key Exchange with
- Elliptic Curve Systems, Crypto '95, Santa Barbara, 1995.
- Available on-line as
- ftp://ftp.cs.arizona.edu/reports/1995/TR95-03.ps (and
- .Z).
-
-
-
-Orman Informational [Page 53]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
- [Stinson] Stinson, Douglas, Cryptography Theory and Practice. CRC
- Press, Inc., 2000, Corporate Blvd., Boca Raton, FL,
- 33431-9868, ISBN 0-8493-8521-0, 1995
-
- [Zimmerman] Philip Zimmermann, The Official Pgp User's Guide,
- Published by MIT Press Trade, Publication date: June
- 1995, ISBN: 0262740176
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Orman Informational [Page 54]
-
-RFC 2412 The OAKLEY Key Determination Protocol November 1998
-
-
-Full Copyright Statement
-
- Copyright (C) The Internet Society (1998). All Rights Reserved.
-
- This document and translations of it may be copied and furnished to
- others, and derivative works that comment on or otherwise explain it
- or assist in its implementation may be prepared, copied, published
- and distributed, in whole or in part, without restriction of any
- kind, provided that the above copyright notice and this paragraph are
- included on all such copies and derivative works. However, this
- document itself may not be modified in any way, such as by removing
- the copyright notice or references to the Internet Society or other
- Internet organizations, except as needed for the purpose of
- developing Internet standards in which case the procedures for
- copyrights defined in the Internet Standards process must be
- followed, or as required to translate it into languages other than
- English.
-
- The limited permissions granted above are perpetual and will not be
- revoked by the Internet Society or its successors or assigns.
-
- This document and the information contained herein is provided on an
- "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
- TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Orman Informational [Page 55]
-